Appendix I, referenced in this specification, is submitted on a compact disc, the material thereon incorporated herein by reference, file name of the material is patent.pdf, the disc was created on Dec. 17, 2001 with a size of 3,382 kbytes.
This invention relates to the problem of running non-JAVA objects at a server at the request of a JAVA client.
Appendix I, referenced in this specification, is submitted on a compact disc, the material thereon incorporated herein by reference, file name of the material is patent.txt, the disc was created on Jul. 17, 2002 with a size of 87 Kbytes.
JAVA is an object-oriented programming language and also a distributed run time environment. It provides a network computing model in which the client can reside on any platform, the server can reside on any platform and communication between the client and server is enabled over a JAVA physical socket. Objects are passed back and forth between client and server over the Java physical socket. For example, in order to perform a requested function, an object or group of objects are instantiated with the data needed and the object or group of objects are transferred over the socket to the server for execution of the method. Once the results are obtained, the object or group of objects are transferred over the socket from the server to the client.
In order to operate in a JAVA framework, objects at the client and server must be implemented in JAVA. The current invention seeks to obtain the advantage of JAVA in that it can run on any platform, thus enabling the client to have complete freedom in choosing a platform, and still be able to run non-JAVA process objects at the server. This is not possible in current JAVA implementations where JAVA objects are passed back and forth from client to server.
Instantiation of JAVA process objects is provided in this invention at the server. Instance variables for a JAVA process object are serialized and sent over a JAVA physical socket between client and server. At the server the instance variables are provided to instantiate a JAVA process object identical to the client process object. However, a JAVA virtual machine at the server can access non-JAVA code (for example, functions constructed in native C) and load that code into the instantiated JAVA process object. After executing the functions, the result data is passed by the server over the socket to the client. In that manner, the fact that the function was performed by non-JAVA code is transparent to the client and the requirement of re-formulating non-JAVA process objects into JAVA in order to use them in a network environment is rendered unnecessary.
In the invention, the words client and server are interchangeable, that is, the instantiation process is bidirectional. This enables the server to instantiate an object at the client. In that manner data can be transmitted to several clients, for example, notification of an event on a peripheral device. This invention enables an easy bidirectional method invocation.
The invention is advantageous in that only data is transferred over the socket rather than the whole object or group of objects, thus improving performance time. The invention is particularly advantageous in that non-JAVA process objects can be utilized thus avoiding the requirement of re-coding process objects in JAVA.
To implement the invention, a triology of methods, send, receive and execute are provided in both the client process object and the server process object. In that manner, communication between the two process objects by transferring instance variables is enabled.
The above mentioned and other features and objects of this invention and the manner of obtaining them will become more apparent, and the invention itself will best be understood by reference to the following description of embodiments of the invention taken in conjunction with the accompanying drawing, a description of which follows.